{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>vol</th>\n",
       "      <th>chg</th>\n",
       "      <th>date</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3325.4926</td>\n",
       "      <td>3322.8557</td>\n",
       "      <td>593851100</td>\n",
       "      <td>-2.1253</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:30:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3321.7106</td>\n",
       "      <td>3311.7765</td>\n",
       "      <td>281496200</td>\n",
       "      <td>-11.0792</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:31:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3310.4106</td>\n",
       "      <td>3308.4939</td>\n",
       "      <td>236541100</td>\n",
       "      <td>-3.1834</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:32:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3308.9903</td>\n",
       "      <td>3307.1725</td>\n",
       "      <td>188468100</td>\n",
       "      <td>0.1115</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:33:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3315.3184</td>\n",
       "      <td>3308.2525</td>\n",
       "      <td>178743200</td>\n",
       "      <td>6.3512</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:34:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        high        low        vol      chg       date     time\n",
       "0  3325.4926  3322.8557  593851100  -2.1253  2015/10/8  9:30:00\n",
       "1  3321.7106  3311.7765  281496200 -11.0792  2015/10/8  9:31:00\n",
       "2  3310.4106  3308.4939  236541100  -3.1834  2015/10/8  9:32:00\n",
       "3  3308.9903  3307.1725  188468100   0.1115  2015/10/8  9:33:00\n",
       "4  3315.3184  3308.2525  178743200   6.3512  2015/10/8  9:34:00"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>vol</th>\n",
       "      <th>chg</th>\n",
       "      <th>date</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3325.4926</td>\n",
       "      <td>3322.8557</td>\n",
       "      <td>593851100</td>\n",
       "      <td>-2.1253</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:30:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3321.7106</td>\n",
       "      <td>3311.7765</td>\n",
       "      <td>281496200</td>\n",
       "      <td>-11.0792</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:31:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3310.4106</td>\n",
       "      <td>3308.4939</td>\n",
       "      <td>236541100</td>\n",
       "      <td>-3.1834</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:32:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3308.9903</td>\n",
       "      <td>3307.1725</td>\n",
       "      <td>188468100</td>\n",
       "      <td>0.1115</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:33:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3315.3184</td>\n",
       "      <td>3308.2525</td>\n",
       "      <td>178743200</td>\n",
       "      <td>6.3512</td>\n",
       "      <td>2015/10/8</td>\n",
       "      <td>9:34:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        high        low        vol      chg       date     time\n",
       "0  3325.4926  3322.8557  593851100  -2.1253  2015/10/8  9:30:00\n",
       "1  3321.7106  3311.7765  281496200 -11.0792  2015/10/8  9:31:00\n",
       "2  3310.4106  3308.4939  236541100  -3.1834  2015/10/8  9:32:00\n",
       "3  3308.9903  3307.1725  188468100   0.1115  2015/10/8  9:33:00\n",
       "4  3315.3184  3308.2525  178743200   6.3512  2015/10/8  9:34:00"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[np.logical_not(df['date'] <> \"2015/10/8\")].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "__author__ = 'FENG Yutong'\n",
    "__credits__='FANG Boyue'\n",
    "\n",
    "'''The file is intended for VPIN calculation'''\n",
    "\n",
    "\n",
    "import pandas\n",
    "from math import *\n",
    "import math\n",
    "import numpy as np\n",
    "\n",
    "def std(list):\n",
    "    element = 0 \n",
    "    for item in list:\n",
    "        element = element + float((item**2)/( len(list)))\n",
    "    return math.sqrt(element)\n",
    "\n",
    "def phi(x):\n",
    "    #'Cumulative distribution function for the standard normal distribution'\n",
    "    return (1.0 + erf(x / sqrt(2.0))) / 2.0\n",
    "\n",
    "def calx(v_i,delta_p_i,sigma):\n",
    "    x = v_i * phi(delta_p_i/sigma)\n",
    "    return x\n",
    "\n",
    "def main():\n",
    "    global df\n",
    "    df = pandas.read_table(\"data.txt\").dropna()\n",
    "\n",
    "if __name__ == '__main__':\n",
    "    main()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "high = df[\"high\"].tolist()\n",
    "low = df[\"low\"].tolist()\n",
    "vol = df[\"vol\"].tolist()\n",
    "chg =df[\"chg\"].tolist()\n",
    "date = df[\"date\"].tolist()\n",
    "time = df[\"time\"].tolist()\n",
    "sigma = std(chg) #calculate standard deviation\n",
    "totalvol = sum(vol)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "dateset = tuple(set(date))\n",
    "vpin=[]\n",
    "for eachdate in dateset:\n",
    "    dateslice = df[np.logical_not(df['date'] <> eachdate)]\n",
    "    datevol = dataslice['vol'].sum()\n",
    "    vbs = datevol/50\n",
    "    \n",
    "    '''list to store results'''\n",
    "    delta_p_i = []\n",
    "    v_i = []\n",
    "    x=[]\n",
    "    \n",
    "    '''convert slice to list'''\n",
    "    highslice = dateslice[\"high\"].tolist()\n",
    "    lowslice = dateslice[\"low\"].tolist()\n",
    "    volslice = dateslice[\"vol\"].tolist()\n",
    "    \n",
    "    '''generate basket'''\n",
    "    highbas=[]\n",
    "    lowbas=[]\n",
    "    volbas=[]\n",
    "    \n",
    "    '''start filling basket'''\n",
    "    for i in range(len(dateslice.index)):\n",
    "        highbas.append(highslice[i])\n",
    "        lowbas.append(lowslice[i])\n",
    "        volbas.append(volslice[i])\n",
    "        '''pop last element if vol exceeds.'''\n",
    "        if sum(volbas) > vbs:\n",
    "            v_i.append(sum(volbas[0:-1]))  \n",
    "            delta_p_i.append(abs(max(highbas)-min(lowbas)))\n",
    "            highbas = highbas[-1:] \n",
    "            lowbas = lowbas[-1:]\n",
    "            volbas = volbas[-1:]\n",
    "    for i in range(len(v_i)):\n",
    "        x.append(calx(v_i[i],delta_p_i[i],sigma))\n",
    "    v_tau_b=sum(x)\n",
    "    dateitem= abs(2*v_tau_b - vbs)\n",
    "    vpin.append(dateitem/totalvol)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "732\n",
      "732\n"
     ]
    }
   ],
   "source": [
    "x = list(set(date))\n",
    "x.sort()\n",
    "print(len(x))\n",
    "print(len(vpin))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\envs\\py2\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:161: UserWarning: pylab import has clobbered these variables: ['cosh', 'ldexp', 'hypot', 'tan', 'isnan', 'log', 'fabs', 'floor', 'sqrt', 'frexp', 'degrees', 'pi', 'log10', 'sin', 'fmod', 'copysign', 'cos', 'ceil', 'isinf', 'sinh', 'trunc', 'std', 'expm1', 'e', 'tanh', 'radians', 'modf', 'time', 'exp', 'log1p', 'gamma']\n",
      "`%matplotlib` prevents importing * from pylab and numpy\n",
      "  \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x903cf98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    " \n",
    "p1= x\n",
    "p2= vpin\n",
    " \n",
    "#创建绘图图表对象，可以不显式创建，跟cv2中的cv2.namedWindow()用法差不多\n",
    "plt.figure('Draw')\n",
    "plt.plot(p1,p2)  # plot绘制折线图\n",
    "plt.draw()  # 显示绘图\n",
    "plt.pause(5)  #显示5秒\n",
    "plt.savefig(\"easyplot01.jpg\")  #保存图象\n",
    "plt.close()   #关闭图表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "import xlrd\n",
    "from xlrd import open_workbook\n",
    "book = open_workbook('random.xls')\n",
    "sheet1 = book.sheet_by_index(0)\n",
    "data = vpin\n",
    "\n",
    "for i in xrange(sheet1.nrows):\n",
    "    data.append(sheet1.cell(i,1).value)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
